package com.hskn.hss.module.cases.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hskn.hss.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.annotation.Transient;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author hskn
 * @since 2021-05-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Cases extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;
    public static final String statusList = "待分派,待处理,待结案,已结案,废弃工单";

    /**
     * 案件id
     */
    @TableId(value = "case_id", type = IdType.ASSIGN_UUID)
    private String caseId;

    /**
     * 工单号
     */
    private String caseNo;

    /**
     * 问题大类id
     */
    private String caseIssueId;
    private String caseIssueName;

    /**
     * 问题小类id
     */
    private String caseIssueChildId;
    private String caseIssueChildName;

    /**
     * 地点名称
     */
    private String address;

    /**
     * 经度
     */
    private String lng;

    /**
     * 纬度
     */
    private String lat;

    /**
     * 人员id
     */
    private String personId;
    private String personName;

    /**
     * 是否平台分派人员，1是，0否。非系统自动分派
     */
    private Integer isPlatformAssign;

    /**
     * 紧急程度id
     */
    private String caseLevelId;

    /**
     * 紧急程度名称
     */
    private String caseLevelName;

    /**
     * 限时 分钟
     */
    private Integer timelimit;

    /**
     * 抄送人uid
     */
    private String ccUid;

    @TableField(exist = false)
    private String ccName;

    /**
     * 是否短信通知，1是，0不是
     */
    private Integer isSendSms;

    /**
     * 问题描述
     */
    private String des;

    /**
     * 整改前图片
     */
    private String imgUrl;

    /**
     * 整改后图片
     */
    private String imgUrlOk;

    /**
     * 整改前语音
     */
    private String voiceUrl;

    /**
     * 整改后语音
     */
    private String voiceUrlOk;

    /**
     * 整改前视频
     */
    private String videoUrl;

    /**
     * 整改后视频
     */
    private String videoUrlOk;

    private String createUid;

    private String createName;
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    //日期
    @TableField(exist = false)
    private String createDate;
    //日期
    @TableField(exist = false)
    private String createMonth;

    private Date updateTime;

    private String updateUid;

    /**
     * 设施类型id
     */
    private String sheshiTypeId;

    /**
     * 设施id
     */
    private String sheshiId;

    /**
     * 设施名称
     */
    private String sheshiName;

    /**
     * 案件状态，待分派1，待处理2，待结案3，已结案4，废弃工单5
     */
    private Integer status;

    /**
     * 废弃前状态，用于恢复，待分派1，待处理2，待结案3，已结案4
     */
    private Integer beforeFqStatus;

    /**
     * 责任部门id
     */
    private String depid;
    /**
     * 责任部门ids
     */
    @TableField(exist = false)
    private List<String> depIds;

    private String depName;

    /**
     * 是否归档，1已归档，0未归档
     */
    private Integer isArchive;

    /**
     * 是否延期，1是，0不是
     */
    private Integer isPostpone;

    /**
     * 是否逾期，1是，0不是
     */
    private Integer isOverdue;

    /**
     * 逾期时间
     */
    private String overdueTime;

    /**
     * 总耗时
     */
    private String consumingTime;

    /**
     * 是否催办，1是，0不是
     */
    private Integer isUrge;

    //    @TableField(exist = false)
    private Integer sign;

    /**
     * 指派时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date appointTime;
    /**
     * 指派时间
     */
    @Transient
    @TableField(exist = false)
    private String appointName;
    private String casesetIssueSourceId;
    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(exist = false)
    private Date startDate;
    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(exist = false)
    private Date endDate;
    /**
     * 机构类型
     */
    @TableField(exist = false)
    private String orgType;
    /**
     * 是否已读(0未读  1已读)
     */
    @TableField(exist = false)
    private Integer isRead;
    /**
     * 自定义标记
     */
    @TableField(exist = false)
    private Integer myFlag;

    @TableField(exist = false)
    private Integer pageNum;
    @TableField(exist = false)
    private Integer pageSize;

    //日期类型(1按天查询  2按月查询)
    @TableField(exist = false)
    private String dateType;

    /**
     *人员id集合
     */
    @TableField(exist = false)
    private List<String> personIds;

    /**
     *上报人id集合
     */
    @TableField(exist = false)
    private List<String> createUids;
}
